{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data Sample Test Visualizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import mmwave.dsp as dsp\n",
    "from mmwave.dataloader import DCA1000\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Important Radar Scan Constants\n",
    "numFrames = 50\n",
    "numADCSamples = 128\n",
    "numTxAntennas = 3\n",
    "numRxAntennas = 4\n",
    "numLoopsPerFrame = 128\n",
    "numChirpsPerFrame = numTxAntennas * numLoopsPerFrame\n",
    "\n",
    "numRangeBins = numADCSamples\n",
    "numDopplerBins = numLoopsPerFrame\n",
    "numAngleBins = 64\n",
    "chirpPeriod = 0.06\n",
    "\n",
    "range_resolution, bandwidth = dsp.range_resolution(numADCSamples)\n",
    "doppler_resolution = dsp.doppler_resolution(bandwidth)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "def microDoppler(dataCube):\n",
    "    micro_doppler_data = np.zeros((numFrames, numLoopsPerFrame, numADCSamples), dtype=np.float64)\n",
    "    for i, frame in enumerate(dataCube):\n",
    "            # (2) Range Processing\n",
    "            from mmwave.dsp.utils import Window\n",
    "\n",
    "            radar_cube = dsp.range_processing(frame, window_type_1d=Window.HAMMING)\n",
    "            assert radar_cube.shape == (\n",
    "            numChirpsPerFrame, numRxAntennas, numADCSamples), \"[ERROR] Radar cube is not the correct shape!\"\n",
    "\n",
    "            # (3) Doppler Processing \n",
    "            det_matrix , aoa_input = dsp.doppler_processing(radar_cube, num_tx_antennas=3, clutter_removal_enabled=True, window_type_2d=Window.HAMMING)\n",
    "\n",
    "    #            # Custom signal_2_dB process, bypasses \n",
    "    #            magnitude_spectrum = np.abs(aoa_input)\n",
    "    #            det_matrix = 20*np.log10(magnitude_spectrum/np.max(magnitude_spectrum))\n",
    "    #            det_matrix[det_matrix<-50]=-50\n",
    "    #            det_matrix = np.sum(det_matrix, axis=1)\n",
    "    #            \n",
    "    #            # Ensure signal is between 0 and 255 (min = -60*12, max = 0)\n",
    "    #            det_matrix = (det_matrix + 720)*255/720\n",
    "\n",
    "            # --- Show output\n",
    "            det_matrix_vis = np.fft.fftshift(det_matrix, axes=1)\n",
    "            micro_doppler_data[i,:,:] = det_matrix_vis\n",
    "\n",
    "    print(\"done\")\n",
    "    # Data should now be ready. Needs to be in micro_doppler_data, a 3D-numpy array with shape [numDoppler, numRanges, numFrames]\n",
    "    return micro_doppler_data.sum(axis=1).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Data Loaded!\n"
     ]
    }
   ],
   "source": [
    "# (1) Reading in adc data\n",
    "adc_data = np.fromfile('./data/dog_walking_2_2_Raw_0.bin', dtype=np.uint16)\n",
    "adc_data = adc_data.reshape(numFrames, -1)\n",
    "adc_data = np.apply_along_axis(DCA1000.organize, 1, adc_data, num_chirps=numChirpsPerFrame,\n",
    "                                num_rx=numRxAntennas, num_samples=numADCSamples)\n",
    "print(\"Data Loaded!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "done\n"
     ]
    }
   ],
   "source": [
    "uDoppler = microDoppler(adc_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x1a7ba4f31d0>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,6))\n",
    "plt.title(\"micro-Doppler Accumulated\")\n",
    "plt.ylabel(\"Velocity (m/s)\")\n",
    "plt.xlabel(\"Time (seconds)\")\n",
    "plt.imshow(uDoppler,origin='lower',extent=(0,chirpPeriod*micro_doppler_data[:,120,:].shape[0],-micro_doppler_data[:,120,:].shape[1]*doppler_resolution/2,micro_doppler_data[:,120,:].shape[1]*doppler_resolution/2))\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
